翻訳と辞書
Words near each other
・ "O" Is for Outlaw
・ "O"-Jung.Ban.Hap.
・ "Ode-to-Napoleon" hexachord
・ "Oh Yeah!" Live
・ "Our Contemporary" regional art exhibition (Leningrad, 1975)
・ "P" Is for Peril
・ "Pimpernel" Smith
・ "Polish death camp" controversy
・ "Pro knigi" ("About books")
・ "Prosopa" Greek Television Awards
・ "Pussy Cats" Starring the Walkmen
・ "Q" Is for Quarry
・ "R" Is for Ricochet
・ "R" The King (2016 film)
・ "Rags" Ragland
・ ! (album)
・ ! (disambiguation)
・ !!
・ !!!
・ !!! (album)
・ !!Destroy-Oh-Boy!!
・ !Action Pact!
・ !Arriba! La Pachanga
・ !Hero
・ !Hero (album)
・ !Kung language
・ !Oka Tokat
・ !PAUS3
・ !T.O.O.H.!
・ !Women Art Revolution


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

simply typed lambda calculus : ウィキペディア英語版
simply typed lambda calculus
The simply typed lambda calculus (\lambda^\to), a form
of type theory, is a typed interpretation of the lambda calculus with only one type constructor: \to that builds function types. It is the canonical and simplest example of a typed lambda calculus. The simply typed lambda calculus was originally introduced by Alonzo Church in 1940 as an attempt to avoid paradoxical uses of the untyped lambda calculus, and it exhibits many desirable and interesting properties.
The term ''simple type'' is also used to refer to extensions of the simply typed lambda calculus such as products, coproducts or natural numbers (System T) or even full recursion (like PCF). In contrast, systems which introduce polymorphic types (like System F) or dependent types (like the Logical Framework) are not considered ''simply typed''. The former are still considered ''simple'' because the Church encodings of such structures can be done using only \to and suitable type variables, while polymorphism and dependency cannot.
== Syntax ==

In this article, we use \sigma and \tau to range over types. Informally, the ''function type'' \sigma \to \tau refers to the type of functions that, given an input of type \sigma, produce an output of type \tau.
By convention, \to associates to the right: we read \sigma\to\tau\to\rho as \sigma\to(\tau\to\rho).
To define the types, we begin by fixing a set of ''base types'', B. These are sometimes called ''atomic types'' or ''type constants''. With this fixed, the syntax of types is:
:\tau ::= \tau \to \tau \mid T \quad \mathrm \quad T \in B.
For example, if B = \, then a, b, a \to a, a \to b, and a \to b \to a are all valid types (among others).
We also fix a set of ''term constants'' for the base types. For example, we might assume a base type nat, and the term constants could be the natural numbers. In the original presentation, Church used only two base types: o for "the type of propositions" and \iota for "the type of individuals". The type o has no term constants, whereas \iota has one term constant. Frequently the calculus with only one base type, usually o, is considered.
The syntax of the simply typed lambda calculus is essentially that of the lambda calculus itself. We write x\mathbin\tau to denote that the variable x is of type \tau. The term syntax is then:
:e ::= x \mid \lambda x\mathbin\tau.e \mid e \, e \mid c
where c is a term constant.
That is, ''variable reference'', ''abstractions'', ''application'', and ''constant''. A variable reference x is ''bound'' if it is inside of an abstraction binding x. A term is ''closed'' if there are no unbound variables.
Compare this to the syntax of untyped lambda calculus:
:e ::= x \mid \lambda x.e \mid e \, e
We see that in typed lambda calculus every function (''abstraction'') must specify the type of its argument.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「simply typed lambda calculus」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.